1. Field of the Invention
This invention relates to computer systems and, more particularly, to tagging of network data packets in computer systems based on service level objectives.
2. Description of the Related Art
In today's highly interconnected computing environment, hardware and software from a variety of different vendors may be used in order to process service requests submitted by enterprise application clients. For example, when a user of a web-enabled stock trading application issues a request to buy shares using a web browser running on a personal computer (PC), the web browser and the operating system at the user's PC may be provided by a first vendor, the web application interface to the stock trading application may have been developed by another vendor, the PC hardware components (which may have been manufactured by a variety of vendors) may have been assembled by a different vendor, and so on. Various networking devices such as switches, routers etc. linking the PC to a server at the stock trading application provider, and the stock trading application provider to a stock exchange, may also be managed by different vendors.
A user's request may be transformed at various stages during request processing: e.g., from various text form entries submitted by the user, one or more protocol-specific encrypted data packets may be generated on the client PC, examined and potentially modified at intermediate nodes of the network, and reassembled at a server managed by the stock trading application provider as a purchase request. The server at the stock trading application provider may generate its own network message or messages to a stock exchange or a seller of the stock, which may also be transformed on their way to the seller. No single entity may typically manage all aspects of the communication required to process even relatively simple service requests; thus, responsibility and control of application data flow may be distributed across multiple service providers and vendors. In many cases, for example, enterprise application providers may rent connectivity across wide area networks from telecommunication carriers, but the enterprise application providers may have no control over the underlying network infrastructure managed by the carriers.
As more and more application data traffic is transported across third-party networks such as the wide area networks managed by telecommunication carriers, the need for providing differentiated levels of service across heterogeneous resource paths has been recognized. Techniques such as MPLS (Multi-Protocol Label Switching) have been developed at least in part for tagging data packets to indicate desired levels of service. However, these schemes are typically deployed statically, e.g., the service level objectives may be tied to statically selected network port numbers or IP addresses. Applications that are intended to support different levels of services for different tasks or jobs—e.g., to provide a higher quality of service to an online order for goods worth a million dollars than to an order for goods worth ten dollars—may not be able to utilize such static techniques effectively. Although networking experts have implemented various types of sophisticated network traffic management techniques, in many cases communication gaps continue to exist between the detailed and dynamically changing application knowledge typically available to enterprise software vendors and the network management expertise typically available within network service providers: that is, the detailed application knowledge is typically not used to make traffic management decisions. Bridging such communication gaps may lead to more effective utilization of network infrastructures from an application perspective than is usually possible today.